🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / app / src / main / java / com / geeksville / mesh / navigation / SettingsRoutes.kt
Displaying Raw • Download
app/src/main/java/com/geeksville/mesh/navigation/SettingsRoutes.kt ui_message_list (be3f882f) Text, 21.96 KB
T8b949e/*
* Copyright (c) 2025 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787com.geeksville.mesh.navigation
Tff7b72import T7ee787androidx.annotation.StringRes
Tff7b72import T7ee787androidx.compose.material.icons.Icons
Tff7b72import T7ee787androidx.compose.material.icons.automirrored.filled.Forward
Tff7b72import T7ee787androidx.compose.material.icons.automirrored.filled.List
Tff7b72import T7ee787androidx.compose.material.icons.automirrored.filled.Message
Tff7b72import T7ee787androidx.compose.material.icons.automirrored.filled.VolumeUp
Tff7b72import T7ee787androidx.compose.material.icons.filled.Bluetooth
Tff7b72import T7ee787androidx.compose.material.icons.filled.CellTower
Tff7b72import T7ee787androidx.compose.material.icons.filled.Cloud
Tff7b72import T7ee787androidx.compose.material.icons.filled.DataUsage
Tff7b72import T7ee787androidx.compose.material.icons.filled.DisplaySettings
Tff7b72import T7ee787androidx.compose.material.icons.filled.LightMode
Tff7b72import T7ee787androidx.compose.material.icons.filled.LocationOn
Tff7b72import T7ee787androidx.compose.material.icons.filled.Notifications
Tff7b72import T7ee787androidx.compose.material.icons.filled.People
Tff7b72import T7ee787androidx.compose.material.icons.filled.PermScanWifi
Tff7b72import T7ee787androidx.compose.material.icons.filled.Person
Tff7b72import T7ee787androidx.compose.material.icons.filled.Power
Tff7b72import T7ee787androidx.compose.material.icons.filled.Router
Tff7b72import T7ee787androidx.compose.material.icons.filled.Security
Tff7b72import T7ee787androidx.compose.material.icons.filled.Sensors
Tff7b72import T7ee787androidx.compose.material.icons.filled.SettingsRemote
Tff7b72import T7ee787androidx.compose.material.icons.filled.Speed
Tff7b72import T7ee787androidx.compose.material.icons.filled.Usb
Tff7b72import T7ee787androidx.compose.material.icons.filled.Wifi
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.ui.graphics.vector.ImageVector
Tff7b72import T7ee787androidx.hilt.navigation.compose.hiltViewModel
Tff7b72import T7ee787androidx.navigation.NavBackStackEntry
Tff7b72import T7ee787androidx.navigation.NavGraphBuilder
Tff7b72import T7ee787androidx.navigation.NavHostController
Tff7b72import T7ee787androidx.navigation.compose.composable
Tff7b72import T7ee787androidx.navigation.navDeepLink
Tff7b72import T7ee787androidx.navigation.navigation
Tff7b72import T7ee787com.geeksville.mesh.AdminProtos
Tff7b72import T7ee787com.geeksville.mesh.MeshProtos.DeviceMetadata
Tff7b72import T7ee787com.geeksville.mesh.R
Tff7b72import T7ee787com.geeksville.mesh.model.UIViewModel
Tff7b72import T7ee787com.geeksville.mesh.ui.debug.DebugScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.SettingsScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.CleanNodeDatabaseScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.RadioConfigViewModel
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.AmbientLightingConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.AudioConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.BluetoothConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.CannedMessageConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.ChannelConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.DetectionSensorConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.DeviceConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.DisplayConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.ExternalNotificationConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.LoRaConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.MQTTConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.NeighborInfoConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.NetworkConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.PaxcounterConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.PositionConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.PowerConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.RangeTestConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.RemoteHardwareConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.SecurityConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.SerialConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.StoreForwardConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.TelemetryConfigScreen
Tff7b72import T7ee787com.geeksville.mesh.ui.settings.radio.components.UserConfigScreen
Tff7b72import T7ee787kotlinx.serialization.Serializable
Tff7b72sealed Tff7b72class T56d364SettingsRoutes Tb4b4b4{
Tf0883e@Serializable Tff7b72data Tff7b72class T56d364SettingsGraphTb4b4b4(Tff7b72val Te6edf3destNumTb4b4b4: Tffa657Int? Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4: Te6edf3Graph
Tf0883e@Serializable Tff7b72data Tff7b72class T56d364SettingsTb4b4b4(Tff7b72val Te6edf3destNumTb4b4b4: Tffa657Int? Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4: Te6edf3Route
T8b949e// region radio Config Routes
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364User Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364ChannelConfig Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Device Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Position Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Power Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Network Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Display Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364LoRa Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Bluetooth Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Security Tb4b4b4: Te6edf3Route
T8b949e// endregion
T8b949e// region module config routes
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364MQTT Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Serial Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364ExtNotification Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364StoreForward Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364RangeTest Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Telemetry Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364CannedMessage Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Audio Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364RemoteHardware Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364NeighborInfo Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364AmbientLighting Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364DetectionSensor Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364Paxcounter Tb4b4b4: Te6edf3Route
T8b949e// endregion
T8b949e// region advanced config routes
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364CleanNodeDb Tb4b4b4: Te6edf3Route
Tf0883e@Serializable Tff7b72data Tff7b72object T56d364DebugPanel Tb4b4b4: Te6edf3Route
T8b949e// endregion
Tb4b4b4}
Tff7b72fun Td2a8ffgetNavRouteFromTb4b4b4(Te6edf3routeNameTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3Route? Tff7b72=
Te6edf3ConfigRouteTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3find Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tff7b72=Tff7b72= Te6edf3routeName Tb4b4b4}Tff7b72?.Te6edf3route Tff7b72?: Te6edf3ModuleRouteTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3find Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3name Tff7b72=Tff7b72= Te6edf3routeName Tb4b4b4}Tff7b72?.Te6edf3route
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4)
Tff7b72fun Te6edf3NavGraphBuilderTb4b4b4.Td2a8ffsettingsGraphTb4b4b4(Te6edf3navControllerTb4b4b4: Te6edf3NavHostControllerTb4b4b4, Te6edf3uiViewModelTb4b4b4: Te6edf3UIViewModelTb4b4b4) Tb4b4b4{
Te6edf3navigationTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsGraphTff7b72>Tb4b4b4(Te6edf3startDestination Tff7b72= Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3composableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsTff7b72>Tb4b4b4(
Te6edf3deepLinks Tff7b72= Te6edf3listOfTb4b4b4(Te6edf3navDeepLinkTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsTff7b72>Tb4b4b4(Te6edf3basePath Tff7b72= Ta5d6ff"Tffd700$Te6edf3DEEP_LINK_BASE_URITa5d6ff/settingsTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{ Te6edf3backStackEntry Tff7b72-Tff7b72>
Tff7b72val Te6edf3parentEntry Tff7b72=
Te6edf3rememberTb4b4b4(Te6edf3backStackEntryTb4b4b4) Tb4b4b4{ Te6edf3navControllerTb4b4b4.Te6edf3getBackStackEntryTb4b4b4(Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsGraphTff7b72::Te6edf3classTb4b4b4) Tb4b4b4}
Te6edf3SettingsScreenTb4b4b4(Te6edf3uiViewModel Tff7b72= Te6edf3uiViewModelTb4b4b4, Te6edf3viewModel Tff7b72= Te6edf3hiltViewModelTb4b4b4(Te6edf3parentEntryTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3navControllerTb4b4b4.Te6edf3navigateTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4{ Te6edf3popUpToTb4b4b4(Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{ Te6edf3inclusive Tff7b72= Tff7b72false Tb4b4b4} Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Te6edf3composableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3CleanNodeDbTff7b72>Tb4b4b4(
Te6edf3deepLinks Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3navDeepLinkTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3CleanNodeDbTff7b72>Tb4b4b4(
Te6edf3basePath Tff7b72= Ta5d6ff"Tffd700$Te6edf3DEEP_LINK_BASE_URITa5d6ff/settings/radio/clean_node_dbTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3CleanNodeDatabaseScreenTb4b4b4(Tb4b4b4)
Tb4b4b4}
Te6edf3configRoutesScreensTb4b4b4(Te6edf3navControllerTb4b4b4)
Te6edf3moduleRoutesScreensTb4b4b4(Te6edf3navControllerTb4b4b4)
Te6edf3composableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3DebugPanelTff7b72>Tb4b4b4(
Te6edf3deepLinks Tff7b72=
Te6edf3listOfTb4b4b4(Te6edf3navDeepLinkTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3DebugPanelTff7b72>Tb4b4b4(Te6edf3basePath Tff7b72= Ta5d6ff"Tffd700$Te6edf3DEEP_LINK_BASE_URITa5d6ff/settings/debug_panelTa5d6ff"Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3DebugScreenTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
T8b949e/**
* Helper to define a composable route for a radio configuration screen within the radio config graph.
*
* This function simplifies adding screens by handling common tasks like:
* - Setting up deep links based on the route's name.
* - Retrieving the parent [NavBackStackEntry] for the [SettingsRoutes.SettingsGraph].
* - Providing the [RadioConfigViewModel] scoped to the parent graph, which the [screenContent] will use.
*
* @param R The type of the [Route] object, must be serializable.
* @param navController The [NavHostController] for navigation.
* @param routeNameString The string name of the route (from the enum entry's name) used for deep link paths.
* @param screenContent A lambda that defines the composable content for the screen. It receives the parent-scoped
* [RadioConfigViewModel].
*/
Tff7b72private Tff7b72inline Tff7b72fun Tff7b72<Tff7b72reified Te6edf3R Tb4b4b4: Te6edf3RouteTff7b72> Te6edf3NavGraphBuilderTb4b4b4.Td2a8ffaddRadioConfigScreenComposableTb4b4b4(
Te6edf3navControllerTb4b4b4: Te6edf3NavHostControllerTb4b4b4,
Te6edf3routeNameStringTb4b4b4: Tffa657StringTb4b4b4,
Te6edf3crossinline Te6edf3screenContentTb4b4b4: Tf0883e@Composable Tb4b4b4(Te6edf3viewModelTb4b4b4: Te6edf3RadioConfigViewModelTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3composableTff7b72<Te6edf3RTff7b72>Tb4b4b4(
Te6edf3deepLinks Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3navDeepLinkTff7b72<Te6edf3RTff7b72>Tb4b4b4(
Te6edf3basePath Tff7b72= Ta5d6ff"Tffd700$Te6edf3DEEP_LINK_BASE_URITa5d6ff/settings/radio/{destNum}/Tffd700${Te6edf3routeNameStringTb4b4b4.Te6edf3lowercaseTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3navDeepLinkTff7b72<Te6edf3RTff7b72>Tb4b4b4(Te6edf3basePath Tff7b72= Ta5d6ff"Tffd700$Te6edf3DEEP_LINK_BASE_URITa5d6ff/settings/radio/Tffd700${Te6edf3routeNameStringTb4b4b4.Te6edf3lowercaseTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{ Te6edf3backStackEntry Tff7b72-Tff7b72>
Tff7b72val Te6edf3parentEntry Tff7b72=
Te6edf3rememberTb4b4b4(Te6edf3backStackEntryTb4b4b4) Tb4b4b4{ Te6edf3navControllerTb4b4b4.Te6edf3getBackStackEntryTb4b4b4(Te6edf3SettingsRoutesTb4b4b4.Te6edf3SettingsGraphTff7b72::Te6edf3classTb4b4b4) Tb4b4b4}
Tff7b72val Te6edf3viewModel Tff7b72= Te6edf3hiltViewModelTff7b72<Te6edf3RadioConfigViewModelTff7b72>Tb4b4b4(Te6edf3parentEntryTb4b4b4)
Te6edf3screenContentTb4b4b4(Te6edf3viewModelTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Te6edf3NavGraphBuilderTb4b4b4.Td2a8ffconfigRoutesScreensTb4b4b4(Te6edf3navControllerTb4b4b4: Te6edf3NavHostControllerTb4b4b4) Tb4b4b4{
Te6edf3ConfigRouteTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3entry Tff7b72-Tff7b72>
Tff7b72when Tb4b4b4(Te6edf3entryTb4b4b4.Te6edf3routeTb4b4b4) Tb4b4b4{
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3User Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3UserTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3ChannelConfig Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3ChannelConfigTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Device Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3DeviceTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Position Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3PositionTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Power Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3PowerTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Network Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3NetworkTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Display Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3DisplayTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3LoRa Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3LoRaTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Bluetooth Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3BluetoothTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Security Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3SecurityTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72else Tff7b72-Tff7b72> Tffa657Unit T8b949e// Should not happen if ConfigRoute enum is exhaustive for this context
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Te6edf3NavGraphBuilderTb4b4b4.Td2a8ffmoduleRoutesScreensTb4b4b4(Te6edf3navControllerTb4b4b4: Te6edf3NavHostControllerTb4b4b4) Tb4b4b4{
Te6edf3ModuleRouteTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3entry Tff7b72-Tff7b72>
Tff7b72when Tb4b4b4(Te6edf3entryTb4b4b4.Te6edf3routeTb4b4b4) Tb4b4b4{
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3MQTT Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3MQTTTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Serial Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3SerialTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3ExtNotification Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3ExtNotificationTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3StoreForward Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3StoreForwardTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3RangeTest Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3RangeTestTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Telemetry Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3TelemetryTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3CannedMessage Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3CannedMessageTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Audio Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3AudioTff7b72>Tb4b4b4(Te6edf3navControllerTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3RemoteHardware Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3RemoteHardwareTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3NeighborInfo Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3NeighborInfoTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3AmbientLighting Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3AmbientLightingTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3DetectionSensor Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3DetectionSensorTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72is Te6edf3SettingsRoutesTb4b4b4.Te6edf3Paxcounter Tff7b72-Tff7b72>
Te6edf3addRadioConfigScreenComposableTff7b72<Te6edf3SettingsRoutesTb4b4b4.Te6edf3PaxcounterTff7b72>Tb4b4b4(
Te6edf3navControllerTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3screenComposableTb4b4b4,
Tb4b4b4)
Tff7b72else Tff7b72-Tff7b72> Tffa657Unit T8b949e// Should not happen if ModuleRoute enum is exhaustive for this context
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tff7b72enum Tff7b72class T56d364ConfigRouteTb4b4b4(
Tf0883e@StringRes Tff7b72val Te6edf3titleTb4b4b4: Tffa657IntTb4b4b4,
Tff7b72val Te6edf3routeTb4b4b4: Te6edf3RouteTb4b4b4,
Tff7b72val Te6edf3iconTb4b4b4: Te6edf3ImageVector?Tb4b4b4,
Tff7b72val Te6edf3typeTb4b4b4: Tffa657Int Tff7b72= T79c0ff0Tb4b4b4,
Tff7b72val Te6edf3screenComposableTb4b4b4: Tf0883e@Composable Tb4b4b4(Te6edf3viewModelTb4b4b4: Te6edf3RadioConfigViewModelTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3USERTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3userTb4b4b4, Te6edf3SettingsRoutesTb4b4b4.Te6edf3UserTb4b4b4, Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3PersonTb4b4b4, T79c0ff0Tb4b4b4, Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3UserConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3CHANNELSTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3channelsTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3ChannelConfigTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3AutoMirroredTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3ListTb4b4b4,
T79c0ff0Tb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3ChannelConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3DEVICETb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3deviceTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3DeviceTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3RouterTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3DEVICE_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3DeviceConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3POSITIONTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3positionTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3PositionTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3LocationOnTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3POSITION_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3PositionConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3POWERTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3powerTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3PowerTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3PowerTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3POWER_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3PowerConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3NETWORKTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3networkTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3NetworkTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3WifiTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3NETWORK_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3NetworkConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3DISPLAYTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3displayTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3DisplayTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3DisplaySettingsTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3DISPLAY_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3DisplayConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3LORATb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3loraTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3LoRaTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3CellTowerTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3LORA_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3LoRaConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3BLUETOOTHTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3bluetoothTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3BluetoothTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3BluetoothTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3BLUETOOTH_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3BluetoothConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3SECURITYTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3securityTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3SecurityTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3SecurityTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ConfigTypeTb4b4b4.Te6edf3SECURITY_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3SecurityConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4;
Tff7b72companion Tff7b72object Tb4b4b4{
Tff7b72fun Td2a8fffilterExcludedFromTb4b4b4(Te6edf3metadataTb4b4b4: Te6edf3DeviceMetadata?Tb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Te6edf3ConfigRouteTff7b72> Tff7b72= Te6edf3entriesTb4b4b4.Te6edf3filter Tb4b4b4{
Tff7b72when Tb4b4b4{
Te6edf3metadata Tff7b72=Tff7b72= Tff7b72null Tff7b72-Tff7b72> Tff7b72true T8b949e// Include all routes if metadata is null
Tffa657it Tff7b72=Tff7b72= Te6edf3BLUETOOTH Tff7b72-Tff7b72> Te6edf3metadataTb4b4b4.Te6edf3hasBluetooth
Tffa657it Tff7b72=Tff7b72= Te6edf3NETWORK Tff7b72-Tff7b72> Te6edf3metadataTb4b4b4.Te6edf3hasWifi Tff7b72|Tff7b72| Te6edf3metadataTb4b4b4.Te6edf3hasEthernet
Tff7b72else Tff7b72-Tff7b72> Tff7b72true T8b949e// Include all other routes by default
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tff7b72enum Tff7b72class T56d364ModuleRouteTb4b4b4(
Tf0883e@StringRes Tff7b72val Te6edf3titleTb4b4b4: Tffa657IntTb4b4b4,
Tff7b72val Te6edf3routeTb4b4b4: Te6edf3RouteTb4b4b4,
Tff7b72val Te6edf3iconTb4b4b4: Te6edf3ImageVector?Tb4b4b4,
Tff7b72val Te6edf3typeTb4b4b4: Tffa657Int Tff7b72= T79c0ff0Tb4b4b4,
Tff7b72val Te6edf3screenComposableTb4b4b4: Tf0883e@Composable Tb4b4b4(Te6edf3viewModelTb4b4b4: Te6edf3RadioConfigViewModelTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3MQTTTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3mqttTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3MQTTTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3CloudTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3MQTT_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3MQTTConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3SERIALTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3serialTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3SerialTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3UsbTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3SERIAL_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3SerialConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3EXT_NOTIFICATIONTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3external_notificationTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3ExtNotificationTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3NotificationsTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3EXTNOTIF_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3ExternalNotificationConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3STORE_FORWARDTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3store_forwardTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3StoreForwardTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3AutoMirroredTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3ForwardTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3STOREFORWARD_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3StoreForwardConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3RANGE_TESTTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3range_testTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3RangeTestTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3SpeedTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3RANGETEST_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3RangeTestConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3TELEMETRYTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3telemetryTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3TelemetryTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3DataUsageTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3TELEMETRY_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3TelemetryConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3CANNED_MESSAGETb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3canned_messageTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3CannedMessageTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3AutoMirroredTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3MessageTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3CANNEDMSG_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3CannedMessageConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3AUDIOTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3audioTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3AudioTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3AutoMirroredTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3VolumeUpTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3AUDIO_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3AudioConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3REMOTE_HARDWARETb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3remote_hardwareTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3RemoteHardwareTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3SettingsRemoteTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3REMOTEHARDWARE_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3RemoteHardwareConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3NEIGHBOR_INFOTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3neighbor_infoTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3NeighborInfoTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3PeopleTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3NEIGHBORINFO_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3NeighborInfoConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3AMBIENT_LIGHTINGTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3ambient_lightingTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3AmbientLightingTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3LightModeTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3AMBIENTLIGHTING_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3AmbientLightingConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3DETECTION_SENSORTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3detection_sensorTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3DetectionSensorTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3SensorsTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3DETECTIONSENSOR_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3DetectionSensorConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3PAXCOUNTERTb4b4b4(
Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3paxcounterTb4b4b4,
Te6edf3SettingsRoutesTb4b4b4.Te6edf3PaxcounterTb4b4b4,
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3PermScanWifiTb4b4b4,
Te6edf3AdminProtosTb4b4b4.Te6edf3AdminMessageTb4b4b4.Te6edf3ModuleConfigTypeTb4b4b4.Te6edf3PAXCOUNTER_CONFIG_VALUETb4b4b4,
Tb4b4b4{ Te6edf3vm Tff7b72-Tff7b72> Te6edf3PaxcounterConfigScreenTb4b4b4(Te6edf3vmTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4;
Tff7b72val Te6edf3bitfieldTb4b4b4: Tffa657Int
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72= T79c0ff1 Te6edf3shl Te6edf3ordinal
Tff7b72companion Tff7b72object Tb4b4b4{
Tff7b72fun Td2a8fffilterExcludedFromTb4b4b4(Te6edf3metadataTb4b4b4: Te6edf3DeviceMetadata?Tb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Te6edf3ModuleRouteTff7b72> Tff7b72= Te6edf3entriesTb4b4b4.Te6edf3filter Tb4b4b4{
Tff7b72when Tb4b4b4(Te6edf3metadataTb4b4b4) Tb4b4b4{
Tff7b72null Tff7b72-Tff7b72> Tff7b72true T8b949e// Include all routes if metadata is null
Tff7b72else Tff7b72-Tff7b72> Te6edf3metadataTb4b4b4.Te6edf3excludedModules Te6edf3and Tffa657itTb4b4b4.Te6edf3bitfield Tff7b72=Tff7b72= T79c0ff0
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.2s